Remote control programs are a special category of communication applications. They go beyond just connecting a computer with another computer to actually taking control of it. By connecting through phone lines and modems or through LAN connections, these programs can put all the resources of one data processing system (e.g. a personal computer or a workstation), usually called the target, under the complete control of another data processing system (e.g. a personal computer or a workstation, connected with a LAN), usually called the controller. The controller screen duplicates the target one. The keyboard of the controller can enter characters directly on the target data processing system; the mouse of the controller can move the mouse pointer on the target screen. The controller screen constantly receives data from the target data processing system screen. Likewise, the keyboard of the controller sends data to the target data processing system every time a key is hit. For all practical purposes, the controller user may as well be sitting in front of the target data processing system.
This kind of remote control software can be useful in a number of circumstances. Just as an example an office personal computer system can be controlled and operated from home personal computers. If the office PC is left connected to a modem, the control can be taken from the home PC and all the resources of the target PC can be controlled and used remotely. A more specific use is to dial in (via modem) to a network-connected PC at the office, log in, and run network applications or update shared files on the network.
The bottleneck caused by modems can have a significant effect on the speed of remote control operations. To boost performances, remote control programs try to reduce and minimize the amount of data that needs to be transmitted over the communication lines (LAN or telephone cables). The refresh of the video image on the display screen of the target PC, which should be duplicated on the controller PC, constitutes the main point in the transmission speed, due to the big quantity of information which has to be transferred. In the past, remote control programs worked by sending and refreshing the entire image of the target PC screen to the remote PC every fraction of a second. The constant rate at which the screen images were sent to the controller PC was called the screen refresh rate. The controller PC screen accurately reflected the target PC screen as changes at the target PC would be included in the next screen refresh. This approach was, of course, not very satisfactory in term of speed, because of the enormous amount of data to be transmitted at each refresh.
Often, a change of the image is limited to a small section of the screen (e.g. moving the mouse pointer, pulling down a menu, highlighting an object) and only the changed data need to be refreshed. The controller system can use the screen data previously received and just refresh the modified part of the screen. By cutting out redundant screen refresh data, a remote control program can improve the response time. Cache memories speed the performance of hard drives and memory chips, and can also be useful for remote control programs. The idea behind a cache is to keep recently used data in a temporary storage area that is quickly accessible. If the data are soon needed again, it is much quicker to access them from a fast-access temporary storage area than to retrieve from the original source. According to this technique, elements of a recently displayed screen are saved as a cache in extended memory. The entire page redraws from the controller PC screen cache, eliminating the need to transfer large amounts of information over the modem from the target to the controller PC. Screen elements that are often redrawn from a screen cache include bit maps, text and fonts.
U.S. Pat. No. 5,491,780 describes a technique for reducing the transmission of bit-map images, by limiting the transmission and the refreshing only to the portion of screen really affected by the graphic commands of the target computer.
Anyway the above techniques, while reducing the amount of image data to be sent over the communication lines, cannot avoid the transmission of image portion usually in the form of bit maps each time the image is modified. This transmission still represents the bottleneck of the remote control programs, because of the low speed at which the bit map with the modified area can be sent through a modem or a LAN; this burden of course can be very heavy in case of a large modification which requires a large bit map.
It is an object of the present invention to provide a technique which overcomes the above drawbacks.